// // src/stores/authStore.js
// import { defineStore } from "pinia";
// import { setToken, removeToken } from "@/utils/auth";
// import { ElMessage } from "element-plus";
// import{login}from '@/api/login.js'
// import router from "@/router";
// import axios from "axios";
// import { addRoutesBasedOnPermissions } from '@/utils/permission';
// import { usePermissionStore } from '@/stores/permissionStore';
// export const useAuthStore = defineStore("auth", {
//   state: () => ({
//     userPermissions: [], // 初始化用户权限为空数组

//   }),
//   getters: {
//     // getters
//   },
//   actions: {
//     async login(a, b, c) {
//       try {
//         const response = await axios.post("/login", {
//           UserName: a,
//           Password: b,
//           CheckPic: c,
//         });
//         const { token, code,message,permissions} = response.data;
//         if (code == 200) {
//           setToken(token);
//           this.setUserPermissions(permissions); // 设置用户权限
//           addRoutesBasedOnPermissions(); // 根据权限动态添加路由
//           console.log('当前路由列表:', router.getRoutes());
//           ElMessage({
//             message: message,
//             type: 'success',
//           });
//           router.push("/");
//         } else {
//           // 模拟登录失败
//           ElMessage.error("账号或密码错误");
//         }
//       } catch (error) {
//         console.log(error);
//       }
//     },

//     async logout() {
//       removeToken();
//       // 路由跳转
//       router.push("/login");
//     },
//     // setUserPermissions(permissions) {
//     //   this.userPermissions = permissions; // 设置用户权限
//     // },

//     setUserPermissions(permissions) {
//       this.userPermissions = permissions;
//       localStorage.setItem('userPermissions', JSON.stringify(permissions));
//     }
//   },
// });

//     // async login(UserName, Password, CheckPic ) {
//     //   try {
//     //     const response = await login(
          
//     //       UserName, Password, CheckPic
          
//     //     );
//     //     // console.log(response);
//     //     const array = response.data.split(",");
//     //     if (array.length > 1 && array[0] == "OK") {
//     //       let name_role = UserName + "," + array[1];
//     //       // token过期时间七天
//     //       // setToken(name_role, 7);
//     //       // token没有设置过期时间
//     //       setToken(name_role);
//     //       if(UserName == 'root'){
//     //         ElMessage({
//     //           message: '登录成功,欢迎' + array[1],
//     //           type: 'success'
//     //         })
//     //       }else{
//     //         ElMessage({
//     //           message: '登录成功,欢迎' + UserName,
//     //           type: 'success'
//     //         })
//     //       }
          
//     //       router.push("/");
         
  
//     //      }else{
//     //       ELMessage({
//     //         message: '账号或密码错误',
//     //         type: 'error'
//     //       })
//     //      }
       
       
//     //   } catch (error) {
//     //     console.log(error);
//     //   }
//     // },

// src/stores/authStore.js
import { defineStore } from "pinia";
import { setToken, removeToken } from "@/utils/auth";
import { ElMessage } from "element-plus";
import { login } from '@/api/login.js';
import axios from "axios";
import router from "@/router";
import { usePermissionStore } from '@/stores/permissionStore';
import Cookies from 'js-cookie'
export const useAuthStore = defineStore("auth", {
  state: () => ({
    userPermissions: JSON.parse(localStorage.getItem('userPermissions') || '[]'), // 从本地存储中恢复权限
  }),
  actions: {

    // mock
    // async login(a, b, c) {
    //   try {
    //     const response = await axios.post("/login", {
    //       UserName: a,
    //       Password: b,
    //     });
    //     const { token, code, message, permissions } = response.data;
    //     if (code == 200) {
    //       setToken(token);
    //       this.setUserPermissions(permissions); // 设置用户权限
    //       console.log('打印权限',permissions); // 打印权限
    //       // 根据权限动态添加路由
    //       const permissionStore = usePermissionStore();
    //       await permissionStore.generateRoutes(permissions);

    //       ElMessage({
    //         message: message,
    //         type: 'success',
    //       });
    //       permissionStore.generateRoutes(permissions).then(() => {
    //         router.push('/')
    //       })
    //     } else {
    //       ElMessage.error("账号或密码错误");
    //     }
    //   } catch (error) {
    //     console.log(error);
    //   }
    // },

    async login(a, b, c) {
      try {
        const response = await axios.post("/login", {
          UserName: a,
          Password: b,
        });
        const { token, code, message, permissions } = response.data;
        if (code == 200) {
          setToken(token);
          this.setUserPermissions(permissions); // 设置用户权限
          console.log('打印权限', permissions); // 打印权限
          // 根据权限动态添加路由
          const permissionStore = usePermissionStore();
          await permissionStore.generateRoutes(permissions);
    
          ElMessage({
            message: message,
            type: 'success',
          });
    
          router.push('/');
        } else {
          ElMessage.error("账号或密码错误");
        }
      } catch (error) {
        console.log(error);
      }
    },
    
    // },
    async logout() {
      this.userPermissions = []; // 清空权限
      localStorage.removeItem('auth');
      localStorage.removeItem('routes');
      localStorage.removeItem('productsData');
      localStorage.removeItem('orderData');
      router.push("/login");
      
    },

    setUserPermissions(permissions) {
      this.userPermissions = permissions;
      localStorage.setItem('userPermissions', JSON.stringify(permissions));
    }
  }
});
